import Cookies from 'js-cookie'

// 定义常量
const TokenKey = 'cereShopAdminToken'
const RoleNameKey = 'roleName'
const UserIdKey = 'platformUserId'
const UserAvatarKey = 'avatar'

/**
 * 获取 Token
 * @returns token 值或 undefined
 */
export function getToken(): string | undefined {
  return Cookies.get(TokenKey)
}

/**
 * 获取用户 ID
 * @returns 用户 ID 或 null
 */
export function getUserId(): string | null {
  return localStorage.getItem(UserIdKey)
}

/**
 * 设置 Token
 * @param token 要设置的 token 值
 * @returns 设置结果
 */
export function setToken(token: string): string | undefined {
  return Cookies.set(TokenKey, token)
}

/**
 * 设置角色名称
 * @param name 角色名称
 * @returns 设置结果
 */
export function setName(name: string): void {
  localStorage.setItem(RoleNameKey, name)
}

/**
 * 设置用户 ID
 * @param userId 用户 ID
 * @returns 设置结果
 */
export function setUserId(userId: string): void {
  localStorage.setItem(UserIdKey, userId)
}

/**
 * 移除 Token
 * @returns 是否成功移除
 */
export function removeToken(): boolean {
  Cookies.remove(TokenKey)
  return !getToken() // 检查 token 是否已成功删除
}

/**
 * 设置用户头像
 * @param avatar 用户头像 URL
 * @returns 设置结果
 */
export function setUserAvatar(avatar: string): void {
  localStorage.setItem(UserAvatarKey, avatar)
}

/**
 * 获取用户头像
 * @returns 用户头像 URL 或 null
 */
export function getUserAvatar(): string | null {
  return localStorage.getItem(UserAvatarKey)
}
